summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt
index a0cb7225f..d16d15fa6 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt
@@ -5,13 +5,19 @@ package org.yuzu.yuzu_emu.model
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
+import org.yuzu.yuzu_emu.R
+import org.yuzu.yuzu_emu.YuzuApplication
+import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem
-class SettingsViewModel : ViewModel() {
+class SettingsViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel() {
var game: Game? = null
var shouldSave = false
+ var clickedItem: SettingsItem? = null
+
private val _toolbarTitle = MutableLiveData("")
val toolbarTitle: LiveData<String> get() = _toolbarTitle
@@ -30,6 +36,12 @@ class SettingsViewModel : ViewModel() {
private val _isUsingSearch = MutableLiveData(false)
val isUsingSearch: LiveData<Boolean> get() = _isUsingSearch
+ val sliderProgress = savedStateHandle.getStateFlow(KEY_SLIDER_PROGRESS, -1)
+
+ val sliderTextValue = savedStateHandle.getStateFlow(KEY_SLIDER_TEXT_VALUE, "")
+
+ val adapterItemChanged = savedStateHandle.getStateFlow(KEY_ADAPTER_ITEM_CHANGED, -1)
+
fun setToolbarTitle(value: String) {
_toolbarTitle.value = value
}
@@ -54,8 +66,31 @@ class SettingsViewModel : ViewModel() {
_isUsingSearch.value = value
}
+ fun setSliderTextValue(value: Float, units: String) {
+ savedStateHandle[KEY_SLIDER_PROGRESS] = value
+ savedStateHandle[KEY_SLIDER_TEXT_VALUE] = String.format(
+ YuzuApplication.appContext.getString(R.string.value_with_units),
+ value.toInt().toString(),
+ units
+ )
+ }
+
+ fun setSliderProgress(value: Float) {
+ savedStateHandle[KEY_SLIDER_PROGRESS] = value
+ }
+
+ fun setAdapterItemChanged(value: Int) {
+ savedStateHandle[KEY_ADAPTER_ITEM_CHANGED] = value
+ }
+
fun clear() {
game = null
shouldSave = false
}
+
+ companion object {
+ const val KEY_SLIDER_TEXT_VALUE = "SliderTextValue"
+ const val KEY_SLIDER_PROGRESS = "SliderProgress"
+ const val KEY_ADAPTER_ITEM_CHANGED = "AdapterItemChanged"
+ }
}